Top 10k strings from Beyond Basic - Experimentor (1984)(Sinclair Research).z80
in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [Z80] (TOSEC-v2007-01-01) /
Back to the directory listing
5 z$=o$(n2): 2 z$=o$(n2,n2 2 s$(a+l,n4)= 2 r$(a-m6);",";b; 2 o$(l)="HL " 2 abel or value not set": 2 Please press any key to continue 2 B<m0)+(B<m0));B: 2 ADDSUBCP JR JR JR 2 ;"LD A,(HL)" 2 ;"LD (HL),A": 2 ;" REGISTERS"; 2 (c-tt*(c>tt*n3)): 1 zx,zy;" ": 1 z$=o$(l,l): 1 x$(i);r$(i);" ";: 1 v(i)+l)+"Z": 1 v$="The value in each RAM storage box can be any number from" 1 v$(n7)=v$(a+l): 1 v$(n6)=v$( 1 v$(l-z)=v$(n7): 1 v$(-z)=v$(n6): 1 v$(-X)=v$(Y): 1 t$(nz)=t$(l): 1 t$(n7)=t$(a+l): 1 t$(n6)=t$(a): 1 t$(l-z)=t$(n7): 1 t$(-z)=t$(n6): 1 t$(-i)+N4) 1 t$(-X)=t$(y): 1 s$(y+l,n4)= 1 s$(y+l)=l$ 1 s$(i+l,n5) 1 s$(i+l,n4) 1 s$(i+l,n3) 1 s$(i+l,n2) 1 s$(c+l,n5)= 1 s$(b+l,n5)= 1 s$(b+l)=i$: 1 s$(NN,N5): 1 r,m6;">*"(m+l): 1 r$="ABCDEHLMNOPQRSTUVWXYF" 1 r$(A);",";r$(b-tt*A); 1 o;"Rewind and play back to verify.", 1 o;"Please enter store or register","name and value; e.g. M 6 or H ^Q": 1 o;"Please enter name of program.","If it fails, 1 o;" Please press a key as above.",,,: 1 o;" Please enter new instruction, ENTER to finish"+(", D to delete" 1 o;" Press any key to continue.",,, 1 o$(n2,n4): 1 o$(n2,l)="^" 1 o$(n2)="HL " 1 o$(n2)="(HL)" 1 o$(n2)=" " 1 o$(l)="Z " 1 o$(l)="(HL)" 1 o$(l)=" ": 1 nz;f$(a-n8*(a>m6));" ";: 1 n7,n3;"A set up a new program",,," J load a saved program",,, 1 n6,n3;"You can now create a program",,,"of your own design and run it",,,"to see the effect on the store",,,"and registers."; 1 n2,nz;"Program": 1 n2,n7;"Registers"; 1 n2,l;"Store"; 1 n$=" numbers " 1 m9,o;a$;" not understood",: 1 m8,o;"I insert","R run","C change", 1 m8,o,,,,a$;" checking...",,,: 1 m8,o,,,," Setting up - please wait.",,,: 1 m8,O;"R run","E edit","V set values",: 1 m)+n2*(e=i 1 m$=" Z80 microprocessor" 1 l$=" registers " 1 k$=" characters " 1 jd3=(jd1-1 1 j$=" storage " 1 instruction 1 h$=" store " 1 g$=" data " 1 f$=" instruction" 1 f$(jd1,jd2)=q$(jd3) 1 e+zs,f+zt;c$(zd) 1 d$="Load the value" 1 c$=d$+" held in A into the address held in registers HL.": 1 c$="The literal, op2 is loaded into register, op1": 1 c$="The PC register is incremented to point to the instruction labelled e.": 1 c$="Subtract the con-tents of register r from the contents of A. Store the result back in A.": 1 c$="Subtract the con-tents of register r from the contents of A. Set the flag 1 c$="SUB E": 1 c$="Registers L & H are loaded with the values in store locations nn and nn+1.": 1 c$="NOTE:NZ(non-zero) and Z(zero) can both be used as conditions.": 1 c$="NOTE:NZ (non-zero) and Z (zero) can both be used as conditions." 1 c$="Load the literal nn ( usually an address ) into registers H & L.": 1 c$="Load the contentsof registers H & L (sometimes anaddress) into store location nn & nn+1.": 1 c$="Load the contentsof register r' into register r.": 1 c$="Load the contentsof register A into the location with address nn": 1 c$="Load register A with the contents of location nnin RAM": 1 c$="Load register A from the store locaton whose address is in H&L": 1 c$="LD HL,^M": 1 c$="LD HL,(M)": 1 c$="LD B,C": 1 c$="LD A,7": 1 c$="LD A,(M)": 1 c$="LD A,(HL)": 1 c$="LD (M),HL": 1 c$="LD (M),A": 1 c$="LD (HL),A": 1 c$="JR S": 1 c$="JR NZ,S": 1 c$="If the flag 1 c$="CP E": 1 c$="Add the contents of the two register operands together and place the sum back into register A": 1 c$="ADD A,E": 1 b$="Two registers as a pair can holda value from": 1 b$="Such pairs are commonly used to hold the number or address of a storage box. They act like a pointer to the box.": 1 b$="Each register can hold a value from": 1 b$=" the value " 1 b$=" Within the Z80, RAM or ROM 1 b$=" We can move data from RAM into the processor " 1 b$=" We can move data from RAM into the Processor's registers": 1 b$=" The computer thinks of both 1 b$=" RAM store can be altered by 1 b$=" It is left to a compiler or an assembler to connect our names with the numeric address.": 1 b$=" In Assembler or BASIC programs, it is easier for us to give a name to our data areas.": 1 b$=" Arithmetic operations can 1 and then obeys it." 1 a$=" given in operand ": 1 [add,subtract]"; 1 Z$=o$(n2): 1 We have just seen what is 1 S$(y+l)=L$ 1 S$(e+l,l)=s$(l,l): 1 S$(a+l,n4)= 1 Read Only Memory 1 Random Access Memory 1 NOTE:NZ (non-zero) and Z (zero) can both be used as conditions.D 1 N3)=S$(y+l, 1 Load the valueR 1 LD LD LD LD LD LD LD LD endX 1 LD LD LD LD LD LD LD LD end 1 K,m6;" *>"(b+l);: 1 I$(i-a+l)= 1 ARITHMETIC 1 AJCMI67RSVEH 1 ABCDEHLMNOPQRSTUVWXYF 1 ;'" C. LD r,nn 1 ;'" B. INTRODUCTORY IDEAS"; 1 ;"to hold large numbers,float-ing point numbers,strings etc )" 1 ;"form. Your Spectrum manual showsthe code number equivalent to each character." 1 ;"YOUR program is encoded and 1 ;"When the PC is changed, it is usually made to point to the following instruction . But someinstructions change the PC 1 ;"Welcome to"; 1 ;"We can perform on registers 1 ;"These extra operations are:"; 1 ;"There are a number of Registers of which we will consider 7. They are called by the letters"; 1 ;"The";m$;" performs very simple instructions. Many of these may be needed to obey just a single BASIC command." 1 ;"The value in each storage box can be any number from" 1 ;"The program counter register ( or PC ) points to the next instruction to be executed." 1 ;"The initial screens explain how certain points are represented in this program to avoid your having to learn too many detailsabout the workings of micros." 1 ;"The following screens describe individually a subset of Z80 Assembler instructions."; 1 ;"THE FLAG REGISTER"; 1 ;"Such instructions are:"''" - jumps (Basic GOTOs)"''" - subroutine calls (GOSUBS)"''" - conditional jumps (IF..THEN)" 1 ;"Registers are a set of special storage boxes inside the CPU." 1 ;"REGISTERS": 1 ;"PROGRAM": 1 ;"PROG COUNTER"; 1 ;"PC points to"'" the next"'" instruction" 1 ;"LOAD O in A"; 1 ;"LOAD A in Q"; 1 ;"LD r,r'": 1 ;"LD r,nn": 1 ;"LD HL,nn" 1 ;"LD HL,(nn)" 1 ;"LD HL,(M)" 1 ;"LD B,C": 1 ;"LD A,(nn)" 1 ;"LD A,(M)": 1 ;"LD (nn),HL" 1 ;"LD (nn),A" 1 ;"LD (M),HL": 1 ;"LD (M),A": 1 ;"L LOAD N in C"; 1 ;"JR cc,e": 1 ;"JR NZ,S": 1 ;"Instructions cause the movement of";n$;"and";k$; 1 ;"Inside the ZX Spectrum is a";m$;" commonly called a 1 ;"INSTRUCTIONS"; 1 ;"INSTRUCTION:"'"DESCRIPTION:" 1 ;"Flag reg. is set": 1 ;"Flag reg. is set" 1 ;"FUNCTION OPERAND 1 OPERAND 2" 1 ;"FLAG REGISTER"; 1 ;"FLAG REGISTER" 1 ;"Each screen shows the format of a particular instruction, a 1 ;"BEYOND BASIC"; 1 ;"An instruction is made up of:"; 1 ;"ADDRESS NAME" 1 ;"ADD A,r" 1 ;"ADD A,E": 1 ;"A character is held in coded" 1 ;"A B C D E H L" 1 ;"24-11=Non zero"; 1 ;"0 to 255 " 1 ;"- a FUNCTION"'" 1 ;"- OPERANDS"'" 1 ;"(BC)"''"The words OP1 and OP2 will be used for general operands from now.": 1 ;"( NOTE : The BASIC interpreter in ROM enables several small boxes to be thought of as a big box"; 1 ;" YOU CAN RE-ENTER THE PROGRAM, IF YOU WISH, WITH"''" GOTO 9940 ENTER"; 1 ;" THE INSTRUCTION FORMAT"; 1 ;" STORE, REGISTERS "; 1 ;" RAM and ROM store"; 1 ;" RAM and ROM store" 1 ;" RAM STORAGE"; 1 ;" Press a letter (A to P)"'" then ENTER."; 1 ;" PROGRAM COUNTER REGISTER"; 1 ;" INTRODUCTION TO "; 1 ;" AND ASSEMBLER. "; 1 ;" A. ALL THE FOLLOWING OPTIONS"; 1 ;" 0 to 255 " 1 ;" ASSEMBLER COMMAND TUTOR."''" You may have all of the Z80 1 .The CPU reads an 1 . Store & Register overview"''" 1 . Return to BASIC"; 1 . Create & run your program"''" 1 . Assembler commands tutor"''" 1 )="AJCMI67RSVEH" 1 );"in the Spectrum"; 1 ).They can also cause";g$;"to be changed." 1 ),e;b$(lq) 1 (ROM)"''" - 1 (RAM)"''" - 1 '''"r or r' will be used if the 1 '''" Your SPECTRUM contains within it a number of storage chips."''" All machines have a 16K ROM. This contains the operating 1 '''" This program is designed 1 '''" There are 3 areas that can 1 '''" The first time you try this 1 '''" Registers are special storage locations inside the Z80 chip itself."''" When your program ( in RAM ) is being obeyed ( or the 1 '''" Please select the phase you 1 '''" In this phase of the Beyond 1 '''" After a little practice with this program, you should be 1 ''"The flag register (F) is an 1 ''"For example :"''"LD"; 1 ''"An instruction consists of two or more sections, as follows:"'' 1 ''" We can think of our RAM store as being a long row of boxes."'' 1 '"nn on its own means a number 1 '"EXAMPLE: ": 1 '"(nn) means the contents of 1 '" The program is made up of 1 '" As the Spectrum has a Z80 1 '" A 16k or 48k SPECTRUM contains chips offering 16k or 48k of RAM store to you."''" RAM store holds your program and data areas - and you can alter these as you wish."''" The contents of RAM are lost when the power is off." 1 "S save","6 down","M menu","7 up",,: 1 "HL,^";r$(b); 1 "HL,(";r$(b);")"; 1 "Beyond BASIC - Experimentor": 1 "A,(";r$(b);")"; 1 "(";r$(b);"),HL"; 1 "(";r$(b);"),A"; 1 " Values can be posted into each box, known as writing to store - POKE in Basic."'' 1 " Values can also be collected from each box, known as reading from store - PEEK in Basic."'' 1 " To identify each box, we give it an address in the form of a number (from 0 to 16 or 48k) or a name. These names and 1 " M leave Experimentor" 1 " C continue existing program",, 1 you tie a name to an 1 with a 'moving' example."''" Finally, in the experimental phase, you use this Assembler knowledge to create a program and watch its effect on store and registers." 1 will be used if the 1 which boxes or registers 1 where nn is a number 1 we can use in our Z80 Assembly Language programs." 1 want to enter :"'''" 1 to perform the action on" 1 to help you understand some 1 through each of the first two phases repeatedly until you 1 three sections."''" In the first, the concepts of ROM & RAM store, registers and simple machine code elements are explained."''" In the second part, a set of Z80 Assembler-like commands 1 the value C? 1 the experimenter."''''" Once in the experimenter, you can always return to the tutor phases without losing your 1 the action to perform"; 1 test program." 1 system written by Sinclair."''" This is simply a program that looks after the inputting and running of your BASIC programs and other aspects of overall control."''" You cannot change it, not even by switching the power off!" 1 subset described to you or 1 store location nn 1 storage K 1 register is currently set the same as condition cc then set PCat the instruction labelled e. If not, continue .": 1 register accordingly. A and r are left unchanged.": 1 quite drastically." 1 quite confident in reading & understanding more complex 1 program, we suggest you go 1 program in ROM is running ), then these registers are used to hold the temporary results of your computations - the 1 processor we use Z80 Assembler to assemble our programs. We shall now go on and find out more about the instructions 1 operand is any register"''"lit 1 operand is a literal 1 of the basic ideas concerning the workings of your SPECTRUM microcomputer."''''" It does this by a mixture of illustrated tuition and an 1 of a store box."''" 1 numbers are like postal 1 numbers W 1 number of the address 1 needn't worry you."''" 1 more than the simple reads and writes that are possible on RAM." 1 micro as it runs." 1 means of their numeric address.": 1 locations are accessed by 1 loading data from the registers or store.": 1 is used to label an 1 introduced to the concepts 1 internal register set by certainfunctions according to their result. "''"In particular it reflects the result of subtractions,additionsand comparisons."''"Z (zero) and NZ (non zero) are used to show the result of the last action affecting F.": 1 instruction (rather like 1 inside your Spectrum - STORE, REGISTERS, PROCESSOR etc."''" We have started to look at how you can manipulate data in a computer by using Assembly 1 hold data :"''" - 1 held in RAM itself and is 1 for you. Their addresses 1 experimental phase where you can create your own program 1 effectively data acted upon 1 description of its effect in thecomputer and a working example." 1 created 13 data boxes 1 compares and so on. 1 characters and numbers as the contents of boxes." : 1 characters M 1 change data in the processor's registers": 1 by a compiler or interpreter and the Z80 chip." 1 boxes ( M to Y ), we use 1 between 0 and 64k. "''" 1 behind STORE and REGISTERS."'''" Simple actions that we might like our Spectrum to perform are also met."'''" Gradually the format of these commands moves towards that of Z80 Assembler." 1 are individually described 1 are confident enough to try 1 any particular command."''" Please indicate your choice."'' 1 and watch its effect on the 1 addresses." 1 addresses of your store 1 address."''" 1 additions, subtractions, 1 a line number in BASIC)" 1 ^M to mean 'address of M'": 1 Z80 microprocessorN 1 Z80 Assembler or micro guides."''''" HAVE FUN!": 1 You can replace (nn) by 1 This is usually the 1 Their names are M to Y."''" 1 Sinclair operating system 1 Since you don't know the 1 P. JR cc,e"; 1 Language instructions." 1 In this program, we have 1 E. LD A,(nn) F. LD (nn),A G. LD HL,nn H. LD (nn),HL I. LD HL,(nn) J. LD A,(HL) K. LD (HL),A L. ADD A,r 1 D. LD r,r' 1 BASIC program, you will be 1 Assemblers usually let 1 0 to 65535 - ie 64K 1 0 to 255 )"''"e 1 (M) to (Y) as needed.": 1 ( ie a number from 1 ( & ENTER)."; 1 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 1 [compare values, etc]"